home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / short19.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  53KB  |  2,348 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:CALL_INFIX_AND.feature_name*/
  10.  
  11.  
  12. T0* r109start_position(T109* C){
  13. T0* R=NULL;
  14. R=((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  15. return R;
  16. }
  17.  
  18.  
  19. T0* r109add_comment(T109* C,T0* a1){
  20. T0* R=NULL;
  21. /*[IF*/
  22. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  23. R=(T0*)C;
  24. }
  25. else{
  26. {T218*n=malloc(sizeof(*n));
  27. *n=M218;
  28. r218make(n,(T0*)C,a1);
  29. R=(T0*)n;
  30. }
  31. }
  32. /*FI]*/
  33. return R;
  34. }
  35.  
  36.  
  37. T2 r109to_integer(T109* C){
  38. T2 R=0;
  39. r109error(r109start_position(C),((T0*)ms12_45846));
  40. return R;
  41. }
  42.  
  43.  
  44. T0* r109to_runnable(T109* C,T0* a1){
  45. T0* R=NULL;
  46. T0* _rf=NULL;
  47. T0* _tbee=NULL;
  48. T0* _at=NULL;
  49. T0* _tt=NULL;
  50. T0* _a=NULL;
  51. T0* _t=NULL;
  52. _t=r109runnable_expression((C)->_target/*4*/,a1);
  53. _a=r109runnable_args((C)->_arguments/*8*/,a1);
  54. _tt=X53result_type(_t);
  55. _at=X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  56. /*[IF*/
  57. /*AF*//*AE*/
  58. /*FI]*/
  59. _rf=r109run_feature_for(C,_t,a1);
  60. /*[IF*/
  61. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  62. C->_target=_t;
  63. C->_arguments=_a;
  64. C->_run_feature=_rf;
  65. r109run_feature_match(C,a1);
  66. R=(T0*)C;
  67. }
  68.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  69. R=(T0*)C;
  70. }
  71. else{
  72. {T109*n=malloc(sizeof(*n));
  73. *n=M109;
  74. r109with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  75. R=(T0*)n;
  76. }
  77. }
  78. /*FI]*/
  79. return R;
  80. }
  81. /*No:CALL_INFIX_AND.fz_bad_argument*/
  82. /*No:CALL_INFIX_AND.fz_iinaiv*/
  83.  
  84.  
  85. T0* r109result_type(T109* C){
  86. T0* R=NULL;
  87. T0* _tla=NULL;
  88. R=X312result_type((C)->_run_feature/*16*/);
  89. /*[IF*/
  90. if(X46is_like_current(R)){
  91. R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  92. }
  93. else{
  94. _tla=R;
  95. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  96. case 246: 
  97. break;
  98. default:
  99. _tla=NULL;
  100. };/*[IF*/
  101. if((_tla)!=((void*)(NULL))){
  102. R=X46run_type(X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  103. }
  104. /*FI]*/
  105. }
  106. /*FI]*/
  107. return R;
  108. }
  109. /*No:CALL_INFIX_AND.run_feature*/
  110.  
  111.  
  112. T0* r109runnable_args(T0* a1,T0* a2){
  113. T0* R=NULL;
  114. R=r136to_runnable(((T136*)a1),a2);
  115. /*[IF*/
  116. if((R)==((void*)(NULL))){
  117. r67add_position(r136start_position(((T136*)a1)));
  118. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  119. r67fatal_error((T67*)(oBC11eh),b1);
  120. }/*]*/
  121. }
  122. /*FI]*/
  123. return R;
  124. }
  125.  
  126.  
  127. void r109bracketed_short(T109* C){
  128. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  129. r109short(C);
  130. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  131. }
  132.  
  133.  
  134. void r109with(T109* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  135. C->_target=a1;
  136. C->_feature_name=a2;
  137. C->_arguments=a3;
  138. C->_run_feature=a4;
  139. r109run_feature_match(C,a5);
  140. }
  141. /*No:CALL_INFIX_AND.fatal_error*/
  142.  
  143.  
  144. void r109run_feature_match(T109* C,T0* a1){
  145. r109run_feature_has_result(C);
  146. r136match_with((T136*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  147. }
  148. /*No:CALL_INFIX_AND.arguments*/
  149.  
  150.  
  151. T0* r109runnable_expression(T0* a1,T0* a2){
  152. T0* R=NULL;
  153. R=X53to_runnable(a1,a2);
  154. /*[IF*/
  155. if((R)==((void*)(NULL))){
  156. r67add_position(X53start_position(a1));
  157. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  158. r67fatal_error((T67*)(oBC11eh),b1);
  159. }/*]*/
  160. }
  161. /*FI]*/
  162. return R;
  163. }
  164. /*No:CALL_INFIX_AND.implicit_cast*/
  165. /*No:CALL_INFIX_AND.arg1*/
  166.  
  167.  
  168. void r109run_feature_has_result(T109* C){
  169. /*[IF*/
  170. if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  171. r67add_position(X312start_position((C)->_run_feature/*16*/));
  172. r67add_position(((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  173. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
  174. r67fatal_error((T67*)(oBC11eh),b1);
  175. }/*]*/
  176. }
  177. /*FI]*/
  178. }
  179.  
  180.  
  181. T0* r109run_feature_for(T109* C,T0* a1,T0* a2){
  182. T0* R=NULL;
  183. T0* _rc=NULL;
  184. _rc=X46run_class(X53result_type(a1));
  185. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*12*/,a2);
  186. return R;
  187. }
  188. /*No:CALL_INFIX_AND.target*/
  189.  
  190.  
  191. void r109error(T0* a1,T0* a2){
  192. r67add_position(a1);
  193. r67error((T67*)(oBC11eh),a2);
  194. }
  195. /*No:CALL_INFIX_AND.precedence*/
  196.  
  197.  
  198. void r109make(T109* C,T0* a1,T0* a2,T0* a3){
  199. C->_target=a1;
  200. {T125*n=malloc(sizeof(*n));
  201. *n=M125;
  202. r125make(n,r109operator(),a2);
  203. C->_feature_name=(T0*)n;
  204. }
  205. {T136*n=malloc(sizeof(*n));
  206. *n=M136;
  207. /*[IRF3.3make_1*/((((T136*)(n)))->_first_one)=(a3);
  208. /*]*/
  209. C->_arguments=(T0*)n;
  210. }
  211. }
  212. /*No:CALL_INFIX_AND.is_current*/
  213. /*No:CALL_INFIX_AND.short_print_feature_name*/
  214. /*No:CALL_INFIX_AND.is_void*/
  215. /*No:CALL_INFIX_AND.us_and*/
  216.  
  217.  
  218. T0* r109operator(void){
  219. T0* R=NULL;
  220. R=((T0*)ms13_939);
  221. return R;
  222. }
  223.  
  224.  
  225. void r109short_target(T109* C){
  226. r109bracketed_short(C);
  227. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  228. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  229. }/*]*/
  230. }
  231.  
  232.  
  233. void r109short(T109* C){
  234. /*[IF*/
  235. if((X53precedence((C)->_target/*4*/))==(13)){
  236. X53short((C)->_target/*4*/);
  237. /*[IRF3.6short_print_feature_name*/{T109* C1=C;
  238. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  239. }/*]*/
  240. /*[IF*/
  241. if((X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
  242. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  243. }
  244.  else if((5)>=(X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  245. X53bracketed_short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  246. }
  247. else{
  248. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  249. }
  250. /*FI]*/
  251. }
  252.  else if((X53precedence((C)->_target/*4*/))<(5)){
  253. X53bracketed_short((C)->_target/*4*/);
  254. /*[IRF3.6short_print_feature_name*/{T109* C1=C;
  255. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  256. }/*]*/
  257. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  258. }
  259. else{
  260. X53short((C)->_target/*4*/);
  261. /*[IRF3.6short_print_feature_name*/{T109* C1=C;
  262. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  263. }/*]*/
  264. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  265. }
  266. /*FI]*/
  267. }
  268. /*No:CALL_INFIX_AND.atomic_precedence*/
  269.  
  270.  
  271. T0* r155type_boolean(void){
  272. if(fBC11type_boolean==0){
  273. fBC11type_boolean=1;
  274. {T252*n=malloc(sizeof(*n));
  275. *n=M252;
  276. r252make(n,NULL);
  277. oBC11type_boolean=(T0*)n;
  278. }
  279. }
  280. return oBC11type_boolean;}
  281. /*No:E_TRUE.start_position*/
  282.  
  283.  
  284. T0* r155to_string(void){
  285. T0* R=NULL;
  286. R=((T0*)ms12_1832);
  287. return R;
  288. }
  289.  
  290.  
  291. T0* r155add_comment(T155* C,T0* a1){
  292. T0* R=NULL;
  293. /*[IF*/
  294. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  295. R=(T0*)C;
  296. }
  297. else{
  298. {T218*n=malloc(sizeof(*n));
  299. *n=M218;
  300. r218make(n,(T0*)C,a1);
  301. R=(T0*)n;
  302. }
  303. }
  304. /*FI]*/
  305. return R;
  306. }
  307. /*No:E_TRUE.to_integer*/
  308. /*No:E_TRUE.to_runnable*/
  309. /*No:E_TRUE.fz_iinaiv*/
  310. /*No:E_TRUE.result_type*/
  311.  
  312.  
  313. void r155error(T0* a1,T0* a2){
  314. r67add_position(a1);
  315. r67error((T67*)(oBC11eh),a2);
  316. }
  317. /*No:E_TRUE.precedence*/
  318. /*No:E_TRUE.make*/
  319. /*No:E_TRUE.fz_true*/
  320. /*No:E_TRUE.bracketed_short*/
  321. /*No:E_TRUE.is_current*/
  322. /*No:E_TRUE.is_void*/
  323. /*No:E_TRUE.short_target*/
  324. /*No:E_TRUE.short*/
  325. /*No:E_TRUE.atomic_precedence*/
  326.  
  327.  
  328. T0* r133start_position(T133* C){
  329. T0* R=NULL;
  330. R=X53start_position((C)->_expression/*4*/);
  331. return R;
  332. }
  333.  
  334.  
  335. T0* r133add_comment(T133* C,T0* a1){
  336. T0* R=NULL;
  337. /*[IF*/
  338. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  339. R=(T0*)C;
  340. }
  341. else{
  342. {T218*n=malloc(sizeof(*n));
  343. *n=M218;
  344. r218make(n,(T0*)C,a1);
  345. R=(T0*)n;
  346. }
  347. }
  348. /*FI]*/
  349. return R;
  350. }
  351. /*No:E_OLD.expression*/
  352.  
  353.  
  354. T2 r133to_integer(T133* C){
  355. T2 R=0;
  356. r133error(r133start_position(C),((T0*)ms12_45846));
  357. return R;
  358. }
  359.  
  360.  
  361. T0* r133to_runnable(T133* C,T0* a1){
  362. T0* R=NULL;
  363. T0* _exp=NULL;
  364. /*[IF*/
  365. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  366. C->_current_type=a1;
  367. _exp=X53to_runnable((C)->_expression/*4*/,a1);
  368. /*[IF*/
  369. if((_exp)==((void*)(NULL))){
  370. r133error(r133start_position(C),((T0*)ms133_24605));
  371. }
  372. else{
  373. C->_expression=_exp;
  374. }
  375. /*FI]*/
  376. R=(T0*)C;
  377. }
  378. else{
  379. {T133*n=malloc(sizeof(*n));
  380. *n=M133;
  381. /*[IRF3.3make*/((((T133*)(n)))->_expression)=((C)->_expression/*4*/);
  382. /*]*/
  383. R=(T0*)n;
  384. }
  385. R=r133to_runnable(((T133*)R),a1);
  386. }
  387. /*FI]*/
  388. return R;
  389. }
  390. /*No:E_OLD.current_type*/
  391. /*No:E_OLD.fz_iinaiv*/
  392.  
  393.  
  394. T0* r133result_type(T133* C){
  395. T0* R=NULL;
  396. R=X53result_type((C)->_expression/*4*/);
  397. return R;
  398. }
  399.  
  400.  
  401. void r133error(T0* a1,T0* a2){
  402. r67add_position(a1);
  403. r67error((T67*)(oBC11eh),a2);
  404. }
  405. /*No:E_OLD.precedence*/
  406. /*No:E_OLD.make*/
  407.  
  408.  
  409. void r133bracketed_short(T133* C){
  410. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  411. r133short(C);
  412. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  413. }
  414. /*No:E_OLD.is_current*/
  415. /*No:E_OLD.is_void*/
  416.  
  417.  
  418. void r133short_target(T133* C){
  419. r133bracketed_short(C);
  420. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  421. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  422. }/*]*/
  423. }
  424.  
  425.  
  426. void r133short(T133* C){
  427. r39hook_or((T39*)(oBC11short_print),((T0*)ms133_975),((T0*)ms133_1444));
  428. X53short((C)->_expression/*4*/);
  429. }
  430. /*No:WRITABLE_ATTRIBUTE.base_class*/
  431.  
  432.  
  433. T0* r300start_position(T300* C){
  434. T0* R=NULL;
  435. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  436. return R;
  437. }
  438.  
  439.  
  440. T6 r300is_merge_with(T300* C,T0* a1,T0* a2){
  441. T6 R=0;
  442. R=1;
  443. /*[IF*/
  444. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  445. /*[IF*/
  446. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  447. R=0;
  448. }
  449. /*FI]*/
  450. }
  451. /*FI]*/
  452. /*[IF*/
  453. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  454. /*[IF*/
  455. {/*AT*/R=0;
  456. }
  457. /*FI]*/
  458. }
  459. /*FI]*/
  460. /*[IF*/
  461. if(R){
  462. /*[IF*/
  463. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  464. R=X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2);
  465. }
  466. /*FI]*/
  467. /*[IF*/
  468. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  469. R=r175is_a_in((T175*)(/*(IRF4.1arguments*/NULL/*)*/),X87arguments(a1),a2);
  470. }
  471. /*FI]*/
  472. /*[IF*/
  473. if(!(R)){
  474. R=1;
  475. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  476. /*]*/
  477. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  478. /*]*/
  479. /*]*/
  480. /*[IF*/
  481. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  482. R=X46is_a_in(X87result_type(a1),(C)->_result_type/*20*/,a2);
  483. }
  484. /*FI]*/
  485. /*[IF*/
  486. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  487. R=r175is_a_in((T175*)(X87arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  488. }
  489. /*FI]*/
  490. }
  491. /*FI]*/
  492. }
  493. /*FI]*/
  494. /*[IF*/
  495. if(R){
  496. r300merge_header_comments(C,a1);
  497. }
  498. /*FI]*/
  499. return R;
  500. }
  501. /*No:WRITABLE_ATTRIBUTE.first_name*/
  502. /*No:WRITABLE_ATTRIBUTE.em1*/
  503. /*No:WRITABLE_ATTRIBUTE.set_isa_redefinition*/
  504. /*No:WRITABLE_ATTRIBUTE.header_comment*/
  505. /*No:WRITABLE_ATTRIBUTE.names*/
  506. /*No:WRITABLE_ATTRIBUTE.result_type*/
  507. /*No:WRITABLE_ATTRIBUTE.code_require*/
  508. /*No:WRITABLE_ATTRIBUTE.make_e_feature*/
  509.  
  510.  
  511. void r300add_into(T300* C,T0* a1){
  512. T0* _fn=NULL;
  513. T2 _i=0;
  514. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  515. _i=1;
  516. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  517. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  518. /*[IF*/
  519. if(r86has(((T86*)a1),X77to_key(_fn))){
  520. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  521. r67add_position(X77start_position(_fn));
  522. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  523. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  524. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  525. r7append((T7*)(oBC67explanation),b1);
  526. }/*]*/
  527. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  528. }
  529. else{
  530. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  531. }
  532. /*FI]*/
  533. _i=(_i)+(1);
  534. }
  535. }
  536.  
  537.  
  538. T6 r300can_hide(T300* C,T0* a1,T0* a2){
  539. T6 R=0;
  540. /*[IF*/
  541. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  542. /*[IF*/
  543. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  544. r67add_position(X87start_position(a1));
  545. r300error(r300start_position(C),((T0*)ms87_64647));
  546. }
  547. /*FI]*/
  548. }
  549. /*FI]*/
  550. /*[IF*/
  551. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  552. /*[IF*/
  553. {/*AT*/r67add_position(X87start_position(a1));
  554. r300error(r300start_position(C),((T0*)ms87_83182));
  555. }
  556. /*FI]*/
  557. }
  558. /*FI]*/
  559. /*[IF*/
  560. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  561. /*[IF*/
  562. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  563. /*[IF*/
  564. if(!(X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2))){
  565. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  566. r7append((T7*)(oBC67explanation),b1);
  567. }/*]*/
  568. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  569. r7append((T7*)(oBC67explanation),b1);
  570. }/*]*/
  571. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  572. }
  573. /*FI]*/
  574. }
  575. /*FI]*/
  576. }
  577. /*FI]*/
  578. /*[IF*/
  579. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  580. /*[IF*/
  581. /*AF*//*AE*/
  582. /*FI]*/
  583. }
  584. /*FI]*/
  585. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  586. /*[IF*/
  587. if(R){
  588. r300merge_header_comments(C,a1);
  589. }
  590. /*FI]*/
  591. return R;
  592. }
  593. /*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
  594.  
  595.  
  596. T0* r300try_to_undefine(T300* C,T0* a1,T0* a2){
  597. T0* R=NULL;
  598. T0* _fn2=NULL;
  599. r67add_position(X77start_position(a1));
  600. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  601. /*[IF*/
  602. if((_fn2)!=((void*)(NULL))){
  603. X77undefine_in(_fn2,a2);
  604. }
  605. /*FI]*/
  606. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  607. /*]*/
  608. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  609. /*]*/
  610. /*]*/
  611. R=r300try_to_undefine_aux(C,a1,a2);
  612. /*[IF*/
  613. if((R)!=((void*)(NULL))){
  614. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
  615. /*]*/
  616. r300merge_header_comments(C,R);
  617. }
  618. else{
  619. r22fatal_undefine(((T22*)a2),a1);
  620. }
  621. /*FI]*/
  622. return R;
  623. }
  624. /*No:WRITABLE_ATTRIBUTE.is_deferred*/
  625. /*No:WRITABLE_ATTRIBUTE.set_clients*/
  626. /*No:WRITABLE_ATTRIBUTE.nb_errors*/
  627.  
  628.  
  629. T0* r300to_run_feature(T300* C,T0* a1,T0* a2){
  630. T0* R=NULL;
  631. {T343*n=malloc(sizeof(*n));
  632. *n=M343;
  633. r343make(n,a1,a2,(T0*)C);
  634. R=(T0*)n;
  635. }
  636. return R;
  637. }
  638.  
  639.  
  640. void r300merge_header_comments(T300* C,T0* a1){
  641. /*[IF*/
  642. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  643. /*[IF*/
  644. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  645. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  646. }
  647.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  648. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  649. }
  650. /*FI]*/
  651. }
  652. /*FI]*/
  653. }
  654. /*No:WRITABLE_ATTRIBUTE.arguments*/
  655. /*No:WRITABLE_ATTRIBUTE.require_assertion*/
  656.  
  657.  
  658. T0* r300try_to_undefine_aux(T300* C,T0* a1,T0* a2){
  659. T0* R=NULL;
  660. r67add_position(r300start_position(C));
  661. r300error(X77start_position(a1),((T0*)ms189_99414));
  662. r22fatal_undefine(((T22*)a2),a1);
  663. return R;
  664. }
  665. /*No:WRITABLE_ATTRIBUTE.isa_redefinition*/
  666. /*No:WRITABLE_ATTRIBUTE.fz_dot*/
  667.  
  668.  
  669. void r300error(T0* a1,T0* a2){
  670. r67add_position(a1);
  671. r67error((T67*)(oBC11eh),a2);
  672. }
  673.  
  674.  
  675. void r300make(T300* C,T0* a1,T0* a2){
  676. /*[IRF3.3make_e_feature*/((((T300*)(C)))->_names)=(a1);
  677. /*]*/
  678. C->_result_type=a2;
  679. }
  680.  
  681.  
  682. void r300collect_for(T2 a1){
  683. T0* _er=NULL;
  684. /*[IF*/
  685. if((a1)==(1)){
  686. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  687. /*[IF*/
  688. if((_er)!=((void*)(NULL))){
  689. /*[IF*/
  690. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  691. r315add_last((T315*)(oBC87require_collector),_er);
  692. }
  693. /*FI]*/
  694. }
  695. /*FI]*/
  696. }
  697. else{
  698. /*[IF*/
  699. /*AF*//*AE*/
  700. /*FI]*/
  701. }
  702. /*FI]*/
  703. }
  704. /*No:WRITABLE_ATTRIBUTE.set_header_comment*/
  705. /*No:WRITABLE_ATTRIBUTE.clients*/
  706. /*No:RUN_FEATURE_4.use_current_state*/
  707. /*No:RUN_FEATURE_4.rescue_compound*/
  708. /*No:RUN_FEATURE_4.actuals_clients*/
  709. /*No:RUN_FEATURE_4.arguments*/
  710.  
  711.  
  712. void r335initialize(T335* C){
  713. C->_arguments=((T289*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  714. C->_result_type=((T289*)((C)->_base_feature/*32*/))->_result_type/*56*/;
  715. /*[IF*/
  716. if(X46is_like_argument((C)->_result_type/*40*/)){
  717. /*[IF*/
  718. if(!(r175is_runnable((T175*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  719. {T175*n=malloc(sizeof(*n));
  720. *n=M175;
  721. r175with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  722. C->_arguments=(T0*)n;
  723. }
  724. }
  725. /*FI]*/
  726. C->_result_type=X46to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  727. }
  728. else{
  729. C->_result_type=X46to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  730. /*[IF*/
  731. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  732. /*[IF*/
  733. if(!(r175is_runnable((T175*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  734. {T175*n=malloc(sizeof(*n));
  735. *n=M175;
  736. r175with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  737. C->_arguments=(T0*)n;
  738. }
  739. }
  740. /*FI]*/
  741. }
  742. /*FI]*/
  743. }
  744. /*FI]*/
  745. C->_local_vars=((T289*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  746. /*[IF*/
  747. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  748. C->_local_vars=r166to_runnable((T166*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
  749. }
  750. /*FI]*/
  751. C->_routine_body=((T289*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  752. /*[IF*/
  753. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  754. C->_routine_body=r204to_runnable((T204*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
  755. }
  756. /*FI]*/
  757. /*[IF*/
  758. if(r73require_check((T73*)(oBC11run_control))){
  759. C->_require_assertion=r289run_require((T0*)C);
  760. }
  761. /*FI]*/
  762. /*[IF*/
  763. if(r73ensure_check((T73*)(oBC11run_control))){
  764. C->_ensure_assertion=r289run_ensure((T0*)C);
  765. }
  766. /*FI]*/
  767. C->_rescue_compound=((T289*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  768. /*[IF*/
  769. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  770. /*[IRF3.3set_used*/((((T334*)((T334*)(oBC11exceptions_handler))))->_used)=(1);
  771. /*]*/
  772. C->_rescue_compound=r204to_runnable((T204*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
  773. }
  774. /*FI]*/
  775. }
  776.  
  777.  
  778. T0* r335start_position(T335* C){
  779. T0* R=NULL;
  780. R=r289start_position((T289*)((C)->_base_feature/*32*/));
  781. return R;
  782. }
  783. /*No:RUN_FEATURE_4.require_assertion*/
  784. /*No:RUN_FEATURE_4.clients_memory*/
  785. /*No:RUN_FEATURE_4.ucs_not_computed*/
  786. /*No:RUN_FEATURE_4.current_type*/
  787.  
  788.  
  789. void r335add_client(T335* C,T0* a1){
  790. T2 _i=0;
  791. /*[IF*/
  792. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  793. {T321*n=malloc(sizeof(*n));
  794. *n=M321;
  795. r321with_capacity(n,4);
  796. C->_actuals_clients=(T0*)n;
  797. }
  798. r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
  799. }
  800. else{
  801. _i=r321fast_index_of((T321*)((C)->_actuals_clients/*12*/),a1);
  802. /*[IF*/
  803. if((_i)>(((T321*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  804. r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
  805. }
  806. /*FI]*/
  807. }
  808. /*FI]*/
  809. r310add_client((T310*)(r335run_class(C)),a1);
  810. }
  811.  
  812.  
  813. T0* r335run_class(T335* C){
  814. T0* R=NULL;
  815. R=X46run_class((C)->_current_type/*4*/);
  816. return R;
  817. }
  818. /*No:RUN_FEATURE_4.result_type*/
  819. /*No:RUN_FEATURE_4.base_feature*/
  820. /*No:RUN_FEATURE_4.ensure_assertion*/
  821.  
  822.  
  823. void r335make(T335* C,T0* a1,T0* a2,T0* a3){
  824. C->_current_type=a1;
  825. C->_name=a2;
  826. C->_base_feature=a3;
  827. /*[IRF3.5add_rf*/r317put(((T317*)(((T310*)(r335run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X77to_key(a2));
  828. /*]*/
  829. r59incr_magic_count((T59*)(oBC11small_eiffel));
  830. C->_use_current_state=15;
  831. r59push((T59*)(oBC11small_eiffel),(T0*)C);
  832. r335initialize(C);
  833. r59pop((T59*)(oBC11small_eiffel));
  834. }
  835. /*No:RUN_FEATURE_4.routine_body*/
  836. /*No:RUN_FEATURE_4.name*/
  837. /*No:RUN_FEATURE_4.local_vars*/
  838.  
  839.  
  840. T2 r335arg_count(T335* C){
  841. T2 R=0;
  842. /*[IF*/
  843. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  844. R=/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  845. }
  846. /*FI]*/
  847. return R;
  848. }
  849.  
  850.  
  851. T0* r335clients(T335* C){
  852. T0* R=NULL;
  853. T0* _bfbc=NULL;
  854. T0* _bc=NULL;
  855. /*[IF*/
  856. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  857. _bc=X46base_class((C)->_current_type/*4*/);
  858. _bfbc=((T289*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  859. /*[IF*/
  860. if((_bc)==((void*)(_bfbc))){
  861. R=((T289*)((C)->_base_feature/*32*/))->_clients/*20*/;
  862. }
  863. else{
  864. R=r22clients_for(((T22*)_bc),(C)->_name/*16*/);
  865. }
  866. /*FI]*/
  867. C->_clients_memory=R;
  868. }
  869. else{
  870. R=(C)->_clients_memory/*8*/;
  871. }
  872. /*FI]*/
  873. return R;
  874. }
  875.  
  876.  
  877. T6 r335is_exported_in(T335* C,T0* a1){
  878. T6 R=0;
  879. R=r94gives_permission_to((T94*)(r335clients(C)),a1);
  880. return R;
  881. }
  882. /*No:CST_ATT_REAL.base_class*/
  883. /*No:CST_ATT_REAL.value_mem*/
  884.  
  885.  
  886. T0* r199start_position(T199* C){
  887. T0* R=NULL;
  888. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  889. return R;
  890. }
  891.  
  892.  
  893. T6 r199is_merge_with(T199* C,T0* a1,T0* a2){
  894. T6 R=0;
  895. R=1;
  896. /*[IF*/
  897. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  898. /*[IF*/
  899. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  900. R=0;
  901. }
  902. /*FI]*/
  903. }
  904. /*FI]*/
  905. /*[IF*/
  906. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  907. /*[IF*/
  908. {/*AT*/R=0;
  909. }
  910. /*FI]*/
  911. }
  912. /*FI]*/
  913. /*[IF*/
  914. if(R){
  915. /*[IF*/
  916. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  917. R=X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2);
  918. }
  919. /*FI]*/
  920. /*[IF*/
  921. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  922. R=r175is_a_in((T175*)(/*(IRF4.1arguments*/NULL/*)*/),X87arguments(a1),a2);
  923. }
  924. /*FI]*/
  925. /*[IF*/
  926. if(!(R)){
  927. R=1;
  928. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  929. /*]*/
  930. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  931. /*]*/
  932. /*]*/
  933. /*[IF*/
  934. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  935. R=X46is_a_in(X87result_type(a1),(C)->_result_type/*20*/,a2);
  936. }
  937. /*FI]*/
  938. /*[IF*/
  939. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  940. R=r175is_a_in((T175*)(X87arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  941. }
  942. /*FI]*/
  943. }
  944. /*FI]*/
  945. }
  946. /*FI]*/
  947. /*[IF*/
  948. if(R){
  949. r199merge_header_comments(C,a1);
  950. }
  951. /*FI]*/
  952. return R;
  953. }
  954. /*No:CST_ATT_REAL.first_name*/
  955. /*No:CST_ATT_REAL.em1*/
  956. /*No:CST_ATT_REAL.header_comment*/
  957. /*No:CST_ATT_REAL.names*/
  958. /*No:CST_ATT_REAL.result_type*/
  959. /*No:CST_ATT_REAL.code_require*/
  960. /*No:CST_ATT_REAL.make_e_feature*/
  961.  
  962.  
  963. void r199add_into(T199* C,T0* a1){
  964. T0* _fn=NULL;
  965. T2 _i=0;
  966. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  967. _i=1;
  968. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  969. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  970. /*[IF*/
  971. if(r86has(((T86*)a1),X77to_key(_fn))){
  972. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  973. r67add_position(X77start_position(_fn));
  974. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  975. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  976. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  977. r7append((T7*)(oBC67explanation),b1);
  978. }/*]*/
  979. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  980. }
  981. else{
  982. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  983. }
  984. /*FI]*/
  985. _i=(_i)+(1);
  986. }
  987. }
  988.  
  989.  
  990. T6 r199can_hide(T199* C,T0* a1,T0* a2){
  991. T6 R=0;
  992. /*[IF*/
  993. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  994. /*[IF*/
  995. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  996. r67add_position(X87start_position(a1));
  997. r199error(r199start_position(C),((T0*)ms87_64647));
  998. }
  999. /*FI]*/
  1000. }
  1001. /*FI]*/
  1002. /*[IF*/
  1003. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  1004. /*[IF*/
  1005. {/*AT*/r67add_position(X87start_position(a1));
  1006. r199error(r199start_position(C),((T0*)ms87_83182));
  1007. }
  1008. /*FI]*/
  1009. }
  1010. /*FI]*/
  1011. /*[IF*/
  1012. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1013. /*[IF*/
  1014. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1015. /*[IF*/
  1016. if(!(X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2))){
  1017. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  1018. r7append((T7*)(oBC67explanation),b1);
  1019. }/*]*/
  1020. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  1021. r7append((T7*)(oBC67explanation),b1);
  1022. }/*]*/
  1023. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1024. }
  1025. /*FI]*/
  1026. }
  1027. /*FI]*/
  1028. }
  1029. /*FI]*/
  1030. /*[IF*/
  1031. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1032. /*[IF*/
  1033. /*AF*//*AE*/
  1034. /*FI]*/
  1035. }
  1036. /*FI]*/
  1037. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  1038. /*[IF*/
  1039. if(R){
  1040. r199merge_header_comments(C,a1);
  1041. }
  1042. /*FI]*/
  1043. return R;
  1044. }
  1045. /*No:CST_ATT_REAL.ensure_assertion*/
  1046.  
  1047.  
  1048. T0* r199try_to_undefine(T199* C,T0* a1,T0* a2){
  1049. T0* R=NULL;
  1050. T0* _fn2=NULL;
  1051. r67add_position(X77start_position(a1));
  1052. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  1053. /*[IF*/
  1054. if((_fn2)!=((void*)(NULL))){
  1055. X77undefine_in(_fn2,a2);
  1056. }
  1057. /*FI]*/
  1058. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1059. /*]*/
  1060. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1061. /*]*/
  1062. /*]*/
  1063. R=r199try_to_undefine_aux(C,a1,a2);
  1064. /*[IF*/
  1065. if((R)!=((void*)(NULL))){
  1066. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
  1067. /*]*/
  1068. r199merge_header_comments(C,R);
  1069. }
  1070. else{
  1071. r22fatal_undefine(((T22*)a2),a1);
  1072. }
  1073. /*FI]*/
  1074. return R;
  1075. }
  1076. /*No:CST_ATT_REAL.is_deferred*/
  1077. /*No:CST_ATT_REAL.set_clients*/
  1078. /*No:CST_ATT_REAL.value*/
  1079. /*No:CST_ATT_REAL.nb_errors*/
  1080.  
  1081.  
  1082. T0* r199to_run_feature(T199* C,T0* a1,T0* a2){
  1083. T0* R=NULL;
  1084. T0* _rc=NULL;
  1085. _rc=X46run_class(a1);
  1086. R=r310at(((T310*)_rc),a2);
  1087. if(NULL!=(R))switch(((T0*)R)->id) {
  1088. case 326: 
  1089. break;
  1090. default:
  1091. R=NULL;
  1092. };/*[IF*/
  1093. if((R)==((void*)(NULL))){
  1094. {T326*n=malloc(sizeof(*n));
  1095. *n=M326;
  1096. r326make(n,a1,a2,(T0*)C);
  1097. R=(T0*)n;
  1098. }
  1099. }
  1100. /*FI]*/
  1101. return R;
  1102. }
  1103.  
  1104.  
  1105. void r199merge_header_comments(T199* C,T0* a1){
  1106. /*[IF*/
  1107. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  1108. /*[IF*/
  1109. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1110. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  1111. }
  1112.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1113. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  1114. }
  1115. /*FI]*/
  1116. }
  1117. /*FI]*/
  1118. }
  1119. /*No:CST_ATT_REAL.arguments*/
  1120. /*No:CST_ATT_REAL.require_assertion*/
  1121.  
  1122.  
  1123. T0* r199try_to_undefine_aux(T199* C,T0* a1,T0* a2){
  1124. T0* R=NULL;
  1125. r67add_position(r199start_position(C));
  1126. r199error(X77start_position(a1),((T0*)ms189_99414));
  1127. r22fatal_undefine(((T22*)a2),a1);
  1128. return R;
  1129. }
  1130. /*No:CST_ATT_REAL.fz_dot*/
  1131.  
  1132.  
  1133. void r199error(T0* a1,T0* a2){
  1134. r67add_position(a1);
  1135. r67error((T67*)(oBC11eh),a2);
  1136. }
  1137.  
  1138.  
  1139. void r199make(T199* C,T0* a1,T0* a2,T0* a3){
  1140. /*[IRF3.3make_e_feature*/((((T199*)(C)))->_names)=(a1);
  1141. /*]*/
  1142. C->_result_type=a2;
  1143. C->_value_mem=a3;
  1144. }
  1145.  
  1146.  
  1147. void r199collect_for(T2 a1){
  1148. T0* _er=NULL;
  1149. /*[IF*/
  1150. if((a1)==(1)){
  1151. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  1152. /*[IF*/
  1153. if((_er)!=((void*)(NULL))){
  1154. /*[IF*/
  1155. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  1156. r315add_last((T315*)(oBC87require_collector),_er);
  1157. }
  1158. /*FI]*/
  1159. }
  1160. /*FI]*/
  1161. }
  1162. else{
  1163. /*[IF*/
  1164. /*AF*//*AE*/
  1165. /*FI]*/
  1166. }
  1167. /*FI]*/
  1168. }
  1169. /*No:CST_ATT_REAL.set_header_comment*/
  1170. /*No:CST_ATT_REAL.clients*/
  1171.  
  1172.  
  1173. T0* r276run_require(T0* a1){
  1174. T0* R=NULL;
  1175. T0* _ct=NULL;
  1176. T0* _ar=NULL;
  1177. T0* _hc=NULL;
  1178. T0* _er=NULL;
  1179. T0* _r=NULL;
  1180. T2 _i=0;
  1181. r315clear((T315*)(oBC87require_collector));
  1182. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  1183. r22collect_for((T22*)(X46base_class(_ct)),1,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  1184. /*[IF*/
  1185. if(!(r315empty((T315*)(oBC87require_collector)))){
  1186. _i=1;
  1187. while (!((_i)>(((T315*)(oBC87require_collector))->_upper/*8*/))) {
  1188. _er=r315item((T315*)(oBC87require_collector),_i);
  1189. _hc=(((T272*)_er))->_header_comment/*4*/;
  1190. /*[IF*/
  1191. if(!(/*(IRF4.7empty*/((((T272*)_er))->_list/*8*/)==(NULL)/*)*/)){
  1192. _r=r276runnable((((T272*)_er))->_list/*8*/,_ct,a1);
  1193. /*[IF*/
  1194. if((_r)!=((void*)(NULL))){
  1195. {T272*n=malloc(sizeof(*n));
  1196. *n=M272;
  1197. r272make_runnable(n,_r,_ct,a1);
  1198. _er=(T0*)n;
  1199. }
  1200. /*[IRF3.3set_header_comment*/((((T272*)(((T272*)_er))))->_header_comment)=(_hc);
  1201. /*]*/
  1202. /*[IF*/
  1203. if((_ar)==((void*)(NULL))){
  1204. _ar=se_ma315(1,
  1205. _er);
  1206. }
  1207. else{
  1208. r315add_last(((T315*)_ar),_er);
  1209. }
  1210. /*FI]*/
  1211. }
  1212. /*FI]*/
  1213. }
  1214. /*FI]*/
  1215. _i=(_i)+(1);
  1216. }
  1217. /*[IF*/
  1218. if((_ar)!=((void*)(NULL))){
  1219. {T314*n=malloc(sizeof(*n));
  1220. *n=M314;
  1221. /*[IRF3.3make*/((((T314*)(n)))->_list)=(_ar);
  1222. /*]*/
  1223. R=(T0*)n;
  1224. }
  1225. }
  1226. /*FI]*/
  1227. }
  1228. /*FI]*/
  1229. return R;
  1230. }
  1231. /*No:EXTERNAL_PROCEDURE.base_class*/
  1232.  
  1233.  
  1234. void r276set_rescue_compound(T276* C,T0* a1){
  1235. /*[IF*/
  1236. if((a1)!=((void*)(NULL))){
  1237. r67add_position(r204start_position(((T204*)a1)));
  1238. }
  1239. else{
  1240. r67add_position(r276start_position(C));
  1241. }
  1242. /*FI]*/
  1243. /*[IRF3.6append*/{T0* b1=((T0*)ms275_126759);
  1244. r7append((T7*)(oBC67explanation),b1);
  1245. }/*]*/
  1246. r67print_as_fatal_error((T67*)(oBC11eh));
  1247. }
  1248.  
  1249.  
  1250. T0* r276start_position(T276* C){
  1251. T0* R=NULL;
  1252. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  1253. return R;
  1254. }
  1255.  
  1256.  
  1257. T6 r276is_merge_with(T276* C,T0* a1,T0* a2){
  1258. T6 R=0;
  1259. R=1;
  1260. /*[IF*/
  1261. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
  1262. /*[IF*/
  1263. {/*AT*/R=0;
  1264. }
  1265. /*FI]*/
  1266. }
  1267. /*FI]*/
  1268. /*[IF*/
  1269. if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
  1270. /*[IF*/
  1271. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  1272. R=0;
  1273. }
  1274.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1275. R=0;
  1276. }
  1277. /*FI]*/
  1278. }
  1279. /*FI]*/
  1280. /*[IF*/
  1281. if(R){
  1282. /*[IF*/
  1283. /*AF*//*AE*/
  1284. /*FI]*/
  1285. /*[IF*/
  1286. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1287. R=r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2);
  1288. }
  1289. /*FI]*/
  1290. /*[IF*/
  1291. if(!(R)){
  1292. R=1;
  1293. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1294. /*]*/
  1295. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1296. /*]*/
  1297. /*]*/
  1298. /*[IF*/
  1299. /*AF*//*AE*/
  1300. /*FI]*/
  1301. /*[IF*/
  1302. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1303. R=r175is_a_in((T175*)(X87arguments(a1)),(C)->_arguments/*20*/,a2);
  1304. }
  1305. /*FI]*/
  1306. }
  1307. /*FI]*/
  1308. }
  1309. /*FI]*/
  1310. /*[IF*/
  1311. if(R){
  1312. r276merge_header_comments(C,a1);
  1313. }
  1314. /*FI]*/
  1315. return R;
  1316. }
  1317.  
  1318.  
  1319. T0* r276runnable(T0* a1,T0* a2,T0* a3){
  1320. T0* R=NULL;
  1321. T0* _a=NULL;
  1322. T2 _i=0;
  1323. /*[IF*/
  1324. if(!(r50empty(((T50*)a1)))){
  1325. R=r50twin(((T50*)a1));
  1326. _i=(((T50*)R))->_upper/*8*/;
  1327. while (!((_i)==(0))) {
  1328. r59push((T59*)(oBC11small_eiffel),a3);
  1329. _a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
  1330. /*[IF*/
  1331. if((_a)==((void*)(NULL))){
  1332. r276error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
  1333. }
  1334. else{
  1335. /*[IRF3.6put*/{T50* C1=((T50*)R);
  1336. T0* b1=_a;
  1337. T2 b2=_i;
  1338. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1339. }/*]*/
  1340. }
  1341. /*FI]*/
  1342. r59pop((T59*)(oBC11small_eiffel));
  1343. _i=(_i)-(1);
  1344. }
  1345. }
  1346. /*FI]*/
  1347. return R;
  1348. }
  1349. /*No:EXTERNAL_PROCEDURE.first_name*/
  1350. /*No:EXTERNAL_PROCEDURE.em1*/
  1351. /*No:EXTERNAL_PROCEDURE.header_comment*/
  1352. /*No:EXTERNAL_PROCEDURE.names*/
  1353. /*No:EXTERNAL_PROCEDURE.fz_03*/
  1354.  
  1355.  
  1356. void r276make_external_routine(T276* C,T0* a1,T0* a2){
  1357. C->_native=a1;
  1358. C->_alias_string=a2;
  1359. }
  1360. /*No:EXTERNAL_PROCEDURE.result_type*/
  1361. /*No:EXTERNAL_PROCEDURE.code_require*/
  1362. /*No:EXTERNAL_PROCEDURE.make_e_feature*/
  1363.  
  1364.  
  1365. void r276add_into(T276* C,T0* a1){
  1366. T0* _fn=NULL;
  1367. T2 _i=0;
  1368. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  1369. _i=1;
  1370. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  1371. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  1372. /*[IF*/
  1373. if(r86has(((T86*)a1),X77to_key(_fn))){
  1374. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1375. r67add_position(X77start_position(_fn));
  1376. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  1377. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  1378. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  1379. r7append((T7*)(oBC67explanation),b1);
  1380. }/*]*/
  1381. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1382. }
  1383. else{
  1384. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  1385. }
  1386. /*FI]*/
  1387. _i=(_i)+(1);
  1388. }
  1389. }
  1390.  
  1391.  
  1392. T6 r276can_hide(T276* C,T0* a1,T0* a2){
  1393. T6 R=0;
  1394. /*[IF*/
  1395. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
  1396. /*[IF*/
  1397. {/*AT*/r67add_position(X87start_position(a1));
  1398. r276error(r276start_position(C),((T0*)ms87_64647));
  1399. }
  1400. /*FI]*/
  1401. }
  1402. /*FI]*/
  1403. /*[IF*/
  1404. if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
  1405. /*[IF*/
  1406. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  1407. r67add_position(X87start_position(a1));
  1408. r276error(r276start_position(C),((T0*)ms87_83182));
  1409. }
  1410.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1411. r67add_position(X87start_position(a1));
  1412. r276error(r276start_position(C),((T0*)ms87_67155));
  1413. }
  1414. /*FI]*/
  1415. }
  1416. /*FI]*/
  1417. /*[IF*/
  1418. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1419. /*[IF*/
  1420. /*AF*//*AE*/
  1421. /*FI]*/
  1422. }
  1423. /*FI]*/
  1424. /*[IF*/
  1425. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1426. /*[IF*/
  1427. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  1428. /*[IF*/
  1429. if(!(r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2))){
  1430. r67add_position(X87start_position(a1));
  1431. r67add_position(r276start_position(C));
  1432. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  1433. r7append((T7*)(oBC67explanation),b1);
  1434. }/*]*/
  1435. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  1436. r7append((T7*)(oBC67explanation),b1);
  1437. }/*]*/
  1438. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1439. }
  1440. /*FI]*/
  1441. }
  1442. /*FI]*/
  1443. }
  1444. /*FI]*/
  1445. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  1446. /*[IF*/
  1447. if(R){
  1448. r276merge_header_comments(C,a1);
  1449. }
  1450. /*FI]*/
  1451. return R;
  1452. }
  1453. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  1454.  
  1455.  
  1456. T0* r276run_ensure(T0* a1){
  1457. T0* R=NULL;
  1458. T0* _ct=NULL;
  1459. T0* _r=NULL;
  1460. r50clear((T50*)(oBC87assertion_collector));
  1461. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1462. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  1463. }/*]*/
  1464. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  1465. r22collect_for((T22*)(X46base_class(_ct)),2,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  1466. _r=r276runnable(oBC87assertion_collector,_ct,a1);
  1467. /*[IF*/
  1468. if((_r)!=((void*)(NULL))){
  1469. {T203*n=malloc(sizeof(*n));
  1470. *n=M203;
  1471. r203make_runnable(n,_r,_ct,a1);
  1472. R=(T0*)n;
  1473. }
  1474. /*[IRF3.3set_header_comment*/((((T203*)(((T203*)R))))->_header_comment)=(((T332*)(oBC87header_comment_memory))->_item/*0*/);
  1475. /*]*/
  1476. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1477. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  1478. }/*]*/
  1479. }
  1480. /*FI]*/
  1481. return R;
  1482. }
  1483.  
  1484.  
  1485. void r276check_obsolete(T276* C){
  1486. /*[IF*/
  1487. if(!(((T59*)(oBC11small_eiffel))->_short_flag/*0*/)){
  1488. /*[IF*/
  1489. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  1490. /*[IRF3.6append*/{T0* b1=((T0*)ms202_39396);
  1491. r7append((T7*)(oBC67explanation),b1);
  1492. }/*]*/
  1493. /*[IRF3.6append*/{T0* b1=((T158*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
  1494. r7append((T7*)(oBC67explanation),b1);
  1495. }/*]*/
  1496. r276warning(r276start_position(C),((T0*)ms12_166));
  1497. }
  1498. /*FI]*/
  1499. }
  1500. /*FI]*/
  1501. }
  1502.  
  1503.  
  1504. T0* r276try_to_undefine(T276* C,T0* a1,T0* a2){
  1505. T0* R=NULL;
  1506. T0* _fn2=NULL;
  1507. r67add_position(X77start_position(a1));
  1508. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  1509. /*[IF*/
  1510. if((_fn2)!=((void*)(NULL))){
  1511. X77undefine_in(_fn2,a2);
  1512. }
  1513. /*FI]*/
  1514. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1515. /*]*/
  1516. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1517. /*]*/
  1518. /*]*/
  1519. R=r276try_to_undefine_aux(C,a1,a2);
  1520. /*[IF*/
  1521. if((R)!=((void*)(NULL))){
  1522. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
  1523. /*]*/
  1524. r276merge_header_comments(C,R);
  1525. }
  1526. else{
  1527. r22fatal_undefine(((T22*)a2),a1);
  1528. }
  1529. /*FI]*/
  1530. return R;
  1531. }
  1532. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  1533. /*No:EXTERNAL_PROCEDURE.set_clients*/
  1534. /*No:EXTERNAL_PROCEDURE.native*/
  1535. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  1536. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  1537.  
  1538.  
  1539. void r276make_routine(T276* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1540. /*[IRF3.3make_e_feature*/((((T276*)(C)))->_names)=(a1);
  1541. /*]*/
  1542. C->_header_comment=a4;
  1543. C->_arguments=a2;
  1544. C->_obsolete_mark=a3;
  1545. C->_require_assertion=a5;
  1546. }
  1547.  
  1548.  
  1549. T0* r276to_run_feature(T276* C,T0* a1,T0* a2){
  1550. T0* R=NULL;
  1551. r276check_obsolete(C);
  1552. {T333*n=malloc(sizeof(*n));
  1553. *n=M333;
  1554. r333make(n,a1,a2,(T0*)C);
  1555. R=(T0*)n;
  1556. }
  1557. return R;
  1558. }
  1559.  
  1560.  
  1561. void r276merge_header_comments(T276* C,T0* a1){
  1562. /*[IF*/
  1563. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  1564. /*[IF*/
  1565. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1566. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  1567. }
  1568.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1569. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  1570. }
  1571. /*FI]*/
  1572. }
  1573. /*FI]*/
  1574. }
  1575. /*No:EXTERNAL_PROCEDURE.arguments*/
  1576. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  1577.  
  1578.  
  1579. void r276warning(T0* a1,T0* a2){
  1580. r67add_position(a1);
  1581. r67warning((T67*)(oBC11eh),a2);
  1582. }
  1583.  
  1584.  
  1585. T0* r276try_to_undefine_aux(T276* C,T0* a1,T0* a2){
  1586. T0* R=NULL;
  1587. {T271*n=malloc(sizeof(*n));
  1588. *n=M271;
  1589. r271from_effective(n,a1,(C)->_arguments/*20*/,(C)->_require_assertion/*28*/,(C)->_ensure_assertion/*32*/,a2);
  1590. R=(T0*)n;
  1591. }
  1592. return R;
  1593. }
  1594. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  1595. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  1596. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  1597. /*No:EXTERNAL_PROCEDURE.alias_string*/
  1598.  
  1599.  
  1600. void r276error(T0* a1,T0* a2){
  1601. r67add_position(a1);
  1602. r67error((T67*)(oBC11eh),a2);
  1603. }
  1604.  
  1605.  
  1606. void r276make(T276* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1607. r276make_routine(C,a1,a2,a3,a4,a5);
  1608. r276make_external_routine(C,a6,a7);
  1609. }
  1610. /*No:EXTERNAL_PROCEDURE.end_comment*/
  1611.  
  1612.  
  1613. void r276collect_for(T276* C,T2 a1){
  1614. T0* _er=NULL;
  1615. /*[IF*/
  1616. if((a1)==(1)){
  1617. _er=(C)->_require_assertion/*28*/;
  1618. /*[IF*/
  1619. if((_er)!=((void*)(NULL))){
  1620. /*[IF*/
  1621. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  1622. r315add_last((T315*)(oBC87require_collector),_er);
  1623. }
  1624. /*FI]*/
  1625. }
  1626. /*FI]*/
  1627. }
  1628. else{
  1629. /*[IF*/
  1630. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  1631. /*[IRF3.3set_item*/((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(((T203*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
  1632. /*]*/
  1633. r203add_into((T203*)((C)->_ensure_assertion/*32*/),oBC87assertion_collector);
  1634. }
  1635. /*FI]*/
  1636. }
  1637. /*FI]*/
  1638. }
  1639.  
  1640.  
  1641. void r276set_header_comment(T276* C,T0* a1){
  1642. /*[IF*/
  1643. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)>(1))){
  1644. C->_end_comment=a1;
  1645. }
  1646. /*FI]*/
  1647. }
  1648. /*No:EXTERNAL_PROCEDURE.clients*/
  1649. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  1650. /*No:IFTHEN.nb_errors*/
  1651. /*No:IFTHEN.expression*/
  1652. /*No:IFTHEN.fz_is_not_boolean*/
  1653. /*No:IFTHEN.then_compound*/
  1654.  
  1655.  
  1656. T0* r214to_runnable(T214* C,T0* a1){
  1657. T0* R=NULL;
  1658. T0* _t=NULL;
  1659. T0* _tc=NULL;
  1660. T0* _e=NULL;
  1661. /*[IF*/
  1662. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  1663. C->_current_type=a1;
  1664. _e=X53to_runnable((C)->_expression/*0*/,a1);
  1665. /*[IF*/
  1666. if((_e)==((void*)(NULL))){
  1667. r214error(X53start_position((C)->_expression/*0*/),((T0*)ms214_32982));
  1668. }
  1669. else{
  1670. C->_expression=_e;
  1671. _t=X53result_type((C)->_expression/*0*/);
  1672. /*[IF*/
  1673. if(!(X46is_boolean(_t))){
  1674. /*[IRF3.6append*/{T0* b1=((T0*)ms214_75563);
  1675. r7append((T7*)(oBC67explanation),b1);
  1676. }/*]*/
  1677. r67add_type(X53result_type((C)->_expression/*0*/),((T0*)ms12_18320));
  1678. r67add_position(X53start_position((C)->_expression/*0*/));
  1679. r67print_as_error((T67*)(oBC11eh));
  1680. }
  1681. /*FI]*/
  1682. }
  1683. /*FI]*/
  1684. /*[IF*/
  1685. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  1686. _tc=r204to_runnable((T204*)((C)->_then_compound/*4*/),a1);
  1687. /*[IF*/
  1688. if((_tc)!=((void*)(NULL))){
  1689. C->_then_compound=_tc;
  1690. }
  1691. /*FI]*/
  1692. }
  1693. /*FI]*/
  1694. /*[IF*/
  1695. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1696. R=(T0*)C;
  1697. }
  1698. /*FI]*/
  1699. }
  1700. else{
  1701. {T214*n=malloc(sizeof(*n));
  1702. *n=M214;
  1703. r214make(n,(C)->_expression/*0*/,(C)->_then_compound/*4*/);
  1704. R=(T0*)n;
  1705. }
  1706. R=r214to_runnable(((T214*)R),a1);
  1707. }
  1708. /*FI]*/
  1709. return R;
  1710. }
  1711. /*No:IFTHEN.current_type*/
  1712.  
  1713.  
  1714. void r214error(T0* a1,T0* a2){
  1715. r67add_position(a1);
  1716. r67error((T67*)(oBC11eh),a2);
  1717. }
  1718.  
  1719.  
  1720. void r214make(T214* C,T0* a1,T0* a2){
  1721. C->_expression=a1;
  1722. C->_then_compound=a2;
  1723. }
  1724. /*No:CLIENT_LIST.start_position*/
  1725.  
  1726.  
  1727. T6 r94gives_permission_to_any(T94* C){
  1728. T6 R=0;
  1729. /*[IF*/
  1730. if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
  1731. R=1;
  1732. }
  1733.  else if(((C)->_list/*4*/)==((void*)(NULL))){
  1734. }
  1735. else{
  1736. R=r183gives_permission_to_any((T183*)((C)->_list/*4*/));
  1737. }
  1738. /*FI]*/
  1739. return R;
  1740. }
  1741.  
  1742.  
  1743. void r94merge(T94* C,T0* a1,T0* a2,T0* a3){
  1744. C->_start_position=a1;
  1745. {T183*n=malloc(sizeof(*n));
  1746. *n=M183;
  1747. r183merge(n,a2,a3);
  1748. C->_list=(T0*)n;
  1749. }
  1750. }
  1751. /*No:CLIENT_LIST.is_omitted*/
  1752.  
  1753.  
  1754. T6 r94gives_permission_to(T94* C,T0* a1){
  1755. T6 R=0;
  1756. /*[IF*/
  1757. if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
  1758. R=1;
  1759. }
  1760.  else if(((C)->_list/*4*/)==((void*)(NULL))){
  1761. }
  1762. else{
  1763. R=r183gives_permission_to((T183*)((C)->_list/*4*/),a1);
  1764. }
  1765. /*FI]*/
  1766. /*[IF*/
  1767. if(R){
  1768. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1769. /*]*/
  1770. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1771. /*]*/
  1772. /*]*/
  1773. }
  1774. else{
  1775. r67add_position((C)->_start_position/*0*/);
  1776. /*[IRF3.6append*/{T0* b1=(((T47*)a1))->_to_string/*0*/;
  1777. r7append((T7*)(oBC67explanation),b1);
  1778. }/*]*/
  1779. /*[IRF3.6append*/{T0* b1=((T0*)ms94_56885);
  1780. r7append((T7*)(oBC67explanation),b1);
  1781. }/*]*/
  1782. }
  1783. /*FI]*/
  1784. return R;
  1785. }
  1786.  
  1787.  
  1788. void r94make(T94* C,T0* a1,T0* a2){
  1789. C->_start_position=a1;
  1790. C->_list=a2;
  1791. }
  1792.  
  1793.  
  1794. T0* r94append(T94* C,T0* a1){
  1795. T0* R=NULL;
  1796. /*[IF*/
  1797. if(((C)==((void*)(a1)))||(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/)){
  1798. R=(T0*)C;
  1799. }
  1800. else{
  1801. /*[IF*/
  1802. if(r94gives_permission_to_any(C)){
  1803. R=(T0*)C;
  1804. }
  1805. else{
  1806. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1807. /*]*/
  1808. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1809. /*]*/
  1810. /*]*/
  1811. /*[IF*/
  1812. if(/*(IRF4.7is_omitted*/((((T94*)a1))->_start_position/*0*/)==(NULL)/*)*/){
  1813. R=a1;
  1814. }
  1815.  else if(r94gives_permission_to_any(((T94*)a1))){
  1816. R=a1;
  1817. }
  1818. else{
  1819. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1820. /*]*/
  1821. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1822. /*]*/
  1823. /*]*/
  1824. {T94*n=malloc(sizeof(*n));
  1825. *n=M94;
  1826. r94merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T94*)a1))->_list/*4*/);
  1827. R=(T0*)n;
  1828. }
  1829. }
  1830. /*FI]*/
  1831. }
  1832. /*FI]*/
  1833. }
  1834. /*FI]*/
  1835. return R;
  1836. }
  1837. /*No:CLIENT_LIST.omitted*/
  1838.  
  1839.  
  1840. T0* r94merge_with(T94* C,T0* a1){
  1841. T0* R=NULL;
  1842. /*[IF*/
  1843. if(r94gives_permission_to_any(C)){
  1844. R=(T0*)C;
  1845. }
  1846.  else if(r94gives_permission_to_any(((T94*)a1))){
  1847. R=a1;
  1848. }
  1849. else{
  1850. {T94*n=malloc(sizeof(*n));
  1851. *n=M94;
  1852. r94merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T94*)a1))->_list/*4*/);
  1853. R=(T0*)n;
  1854. }
  1855. }
  1856. /*FI]*/
  1857. return R;
  1858. }
  1859. /*No:CLIENT_LIST.list*/
  1860. /*No:FUNCTION.rescue_compound*/
  1861. /*No:FUNCTION.use_current_state*/
  1862.  
  1863.  
  1864. T0* r289run_require(T0* a1){
  1865. T0* R=NULL;
  1866. T0* _ct=NULL;
  1867. T0* _ar=NULL;
  1868. T0* _hc=NULL;
  1869. T0* _er=NULL;
  1870. T0* _r=NULL;
  1871. T2 _i=0;
  1872. r315clear((T315*)(oBC87require_collector));
  1873. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  1874. r22collect_for((T22*)(X46base_class(_ct)),1,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  1875. /*[IF*/
  1876. if(!(r315empty((T315*)(oBC87require_collector)))){
  1877. _i=1;
  1878. while (!((_i)>(((T315*)(oBC87require_collector))->_upper/*8*/))) {
  1879. _er=r315item((T315*)(oBC87require_collector),_i);
  1880. _hc=(((T272*)_er))->_header_comment/*4*/;
  1881. /*[IF*/
  1882. if(!(/*(IRF4.7empty*/((((T272*)_er))->_list/*8*/)==(NULL)/*)*/)){
  1883. _r=r289runnable((((T272*)_er))->_list/*8*/,_ct,a1);
  1884. /*[IF*/
  1885. if((_r)!=((void*)(NULL))){
  1886. {T272*n=malloc(sizeof(*n));
  1887. *n=M272;
  1888. r272make_runnable(n,_r,_ct,a1);
  1889. _er=(T0*)n;
  1890. }
  1891. /*[IRF3.3set_header_comment*/((((T272*)(((T272*)_er))))->_header_comment)=(_hc);
  1892. /*]*/
  1893. /*[IF*/
  1894. if((_ar)==((void*)(NULL))){
  1895. _ar=se_ma315(1,
  1896. _er);
  1897. }
  1898. else{
  1899. r315add_last(((T315*)_ar),_er);
  1900. }
  1901. /*FI]*/
  1902. }
  1903. /*FI]*/
  1904. }
  1905. /*FI]*/
  1906. _i=(_i)+(1);
  1907. }
  1908. /*[IF*/
  1909. if((_ar)!=((void*)(NULL))){
  1910. {T314*n=malloc(sizeof(*n));
  1911. *n=M314;
  1912. /*[IRF3.3make*/((((T314*)(n)))->_list)=(_ar);
  1913. /*]*/
  1914. R=(T0*)n;
  1915. }
  1916. }
  1917. /*FI]*/
  1918. }
  1919. /*FI]*/
  1920. return R;
  1921. }
  1922. /*No:FUNCTION.base_class*/
  1923. /*No:FUNCTION.set_rescue_compound*/
  1924.  
  1925.  
  1926. T0* r289start_position(T289* C){
  1927. T0* R=NULL;
  1928. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  1929. return R;
  1930. }
  1931.  
  1932.  
  1933. T6 r289is_merge_with(T289* C,T0* a1,T0* a2){
  1934. T6 R=0;
  1935. R=1;
  1936. /*[IF*/
  1937. if(((C)->_result_type/*56*/)!=((void*)(X87result_type(a1)))){
  1938. /*[IF*/
  1939. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  1940. R=0;
  1941. }
  1942. /*FI]*/
  1943. }
  1944. /*FI]*/
  1945. /*[IF*/
  1946. if(((C)->_arguments/*24*/)!=((void*)(X87arguments(a1)))){
  1947. /*[IF*/
  1948. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  1949. R=0;
  1950. }
  1951.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1952. R=0;
  1953. }
  1954. /*FI]*/
  1955. }
  1956. /*FI]*/
  1957. /*[IF*/
  1958. if(R){
  1959. /*[IF*/
  1960. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  1961. R=X46is_a_in((C)->_result_type/*56*/,X87result_type(a1),a2);
  1962. }
  1963. /*FI]*/
  1964. /*[IF*/
  1965. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  1966. R=r175is_a_in((T175*)((C)->_arguments/*24*/),X87arguments(a1),a2);
  1967. }
  1968. /*FI]*/
  1969. /*[IF*/
  1970. if(!(R)){
  1971. R=1;
  1972. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1973. /*]*/
  1974. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1975. /*]*/
  1976. /*]*/
  1977. /*[IF*/
  1978. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  1979. R=X46is_a_in(X87result_type(a1),(C)->_result_type/*56*/,a2);
  1980. }
  1981. /*FI]*/
  1982. /*[IF*/
  1983. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  1984. R=r175is_a_in((T175*)(X87arguments(a1)),(C)->_arguments/*24*/,a2);
  1985. }
  1986. /*FI]*/
  1987. }
  1988. /*FI]*/
  1989. }
  1990. /*FI]*/
  1991. /*[IF*/
  1992. if(R){
  1993. r289merge_header_comments(C,a1);
  1994. }
  1995. /*FI]*/
  1996. return R;
  1997. }
  1998.  
  1999.  
  2000. T0* r289runnable(T0* a1,T0* a2,T0* a3){
  2001. T0* R=NULL;
  2002. T0* _a=NULL;
  2003. T2 _i=0;
  2004. /*[IF*/
  2005. if(!(r50empty(((T50*)a1)))){
  2006. R=r50twin(((T50*)a1));
  2007. _i=(((T50*)R))->_upper/*8*/;
  2008. while (!((_i)==(0))) {
  2009. r59push((T59*)(oBC11small_eiffel),a3);
  2010. _a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
  2011. /*[IF*/
  2012. if((_a)==((void*)(NULL))){
  2013. r289error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
  2014. }
  2015. else{
  2016. /*[IRF3.6put*/{T50* C1=((T50*)R);
  2017. T0* b1=_a;
  2018. T2 b2=_i;
  2019. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  2020. }/*]*/
  2021. }
  2022. /*FI]*/
  2023. r59pop((T59*)(oBC11small_eiffel));
  2024. _i=(_i)-(1);
  2025. }
  2026. }
  2027. /*FI]*/
  2028. return R;
  2029. }
  2030. /*No:FUNCTION.not_computed*/
  2031. /*No:FUNCTION.first_name*/
  2032. /*No:FUNCTION.em1*/
  2033. /*No:FUNCTION.header_comment*/
  2034. /*No:FUNCTION.names*/
  2035. /*No:FUNCTION.fz_03*/
  2036. /*No:FUNCTION.result_type*/
  2037. /*No:FUNCTION.code_require*/
  2038. /*No:FUNCTION.make_e_feature*/
  2039.  
  2040.  
  2041. void r289add_into(T289* C,T0* a1){
  2042. T0* _fn=NULL;
  2043. T2 _i=0;
  2044. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  2045. _i=1;
  2046. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  2047. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  2048. /*[IF*/
  2049. if(r86has(((T86*)a1),X77to_key(_fn))){
  2050. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  2051. r67add_position(X77start_position(_fn));
  2052. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  2053. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  2054. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  2055. r7append((T7*)(oBC67explanation),b1);
  2056. }/*]*/
  2057. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  2058. }
  2059. else{
  2060. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  2061. }
  2062. /*FI]*/
  2063. _i=(_i)+(1);
  2064. }
  2065. }
  2066.  
  2067.  
  2068. T6 r289can_hide(T289* C,T0* a1,T0* a2){
  2069. T6 R=0;
  2070. /*[IF*/
  2071. if(((C)->_result_type/*56*/)!=((void*)(X87result_type(a1)))){
  2072. /*[IF*/
  2073. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  2074. r67add_position(X87start_position(a1));
  2075. r289error(r289start_position(C),((T0*)ms87_64647));
  2076. }
  2077. /*FI]*/
  2078. }
  2079. /*FI]*/
  2080. /*[IF*/
  2081. if(((C)->_arguments/*24*/)!=((void*)(X87arguments(a1)))){
  2082. /*[IF*/
  2083. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  2084. r67add_position(X87start_position(a1));
  2085. r289error(r289start_position(C),((T0*)ms87_83182));
  2086. }
  2087.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  2088. r67add_position(X87start_position(a1));
  2089. r289error(r289start_position(C),((T0*)ms87_67155));
  2090. }
  2091. /*FI]*/
  2092. }
  2093. /*FI]*/
  2094. /*[IF*/
  2095. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  2096. /*[IF*/
  2097. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  2098. /*[IF*/
  2099. if(!(X46is_a_in((C)->_result_type/*56*/,X87result_type(a1),a2))){
  2100. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  2101. r7append((T7*)(oBC67explanation),b1);
  2102. }/*]*/
  2103. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  2104. r7append((T7*)(oBC67explanation),b1);
  2105. }/*]*/
  2106. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  2107. }
  2108. /*FI]*/
  2109. }
  2110. /*FI]*/
  2111. }
  2112. /*FI]*/
  2113. /*[IF*/
  2114. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  2115. /*[IF*/
  2116. if(((C)->_arguments/*24*/)!=((void*)(NULL))){
  2117. /*[IF*/
  2118. if(!(r175is_a_in((T175*)((C)->_arguments/*24*/),X87arguments(a1),a2))){
  2119. r67add_position(X87start_position(a1));
  2120. r67add_position(r289start_position(C));
  2121. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  2122. r7append((T7*)(oBC67explanation),b1);
  2123. }/*]*/
  2124. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  2125. r7append((T7*)(oBC67explanation),b1);
  2126. }/*]*/
  2127. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  2128. }
  2129. /*FI]*/
  2130. }
  2131. /*FI]*/
  2132. }
  2133. /*FI]*/
  2134. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  2135. /*[IF*/
  2136. if(R){
  2137. r289merge_header_comments(C,a1);
  2138. }
  2139. /*FI]*/
  2140. return R;
  2141. }
  2142. /*No:FUNCTION.ensure_assertion*/
  2143.  
  2144.  
  2145. T0* r289run_ensure(T0* a1){
  2146. T0* R=NULL;
  2147. T0* _ct=NULL;
  2148. T0* _r=NULL;
  2149. r50clear((T50*)(oBC87assertion_collector));
  2150. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2151. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  2152. }/*]*/
  2153. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  2154. r22collect_for((T22*)(X46base_class(_ct)),2,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  2155. _r=r289runnable(oBC87assertion_collector,_ct,a1);
  2156. /*[IF*/
  2157. if((_r)!=((void*)(NULL))){
  2158. {T203*n=malloc(sizeof(*n));
  2159. *n=M203;
  2160. r203make_runnable(n,_r,_ct,a1);
  2161. R=(T0*)n;
  2162. }
  2163. /*[IRF3.3set_header_comment*/((((T203*)(((T203*)R))))->_header_comment)=(((T332*)(oBC87header_comment_memory))->_item/*0*/);
  2164. /*]*/
  2165. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2166. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  2167. }/*]*/
  2168. }
  2169. /*FI]*/
  2170. return R;
  2171. }
  2172.  
  2173.  
  2174. void r289check_obsolete(T289* C){
  2175. /*[IF*/
  2176. if(!(((T59*)(oBC11small_eiffel))->_short_flag/*0*/)){
  2177. /*[IF*/
  2178. if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
  2179. /*[IRF3.6append*/{T0* b1=((T0*)ms202_39396);
  2180. r7append((T7*)(oBC67explanation),b1);
  2181. }/*]*/
  2182. /*[IRF3.6append*/{T0* b1=((T158*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
  2183. r7append((T7*)(oBC67explanation),b1);
  2184. }/*]*/
  2185. r289warning(r289start_position(C),((T0*)ms12_166));
  2186. }
  2187. /*FI]*/
  2188. }
  2189. /*FI]*/
  2190. }
  2191.  
  2192.  
  2193. T0* r289try_to_undefine(T289* C,T0* a1,T0* a2){
  2194. T0* R=NULL;
  2195. T0* _fn2=NULL;
  2196. r67add_position(X77start_position(a1));
  2197. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  2198. /*[IF*/
  2199. if((_fn2)!=((void*)(NULL))){
  2200. X77undefine_in(_fn2,a2);
  2201. }
  2202. /*FI]*/
  2203. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  2204. /*]*/
  2205. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  2206. /*]*/
  2207. /*]*/
  2208. R=r289try_to_undefine_aux(C,a1,a2);
  2209. /*[IF*/
  2210. if((R)!=((void*)(NULL))){
  2211. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*20*/);
  2212. /*]*/
  2213. r289merge_header_comments(C,R);
  2214. }
  2215. else{
  2216. r22fatal_undefine(((T22*)a2),a1);
  2217. }
  2218. /*FI]*/
  2219. return R;
  2220. }
  2221. /*No:FUNCTION.is_deferred*/
  2222. /*No:FUNCTION.set_clients*/
  2223. /*No:FUNCTION.code_ensure*/
  2224. /*No:FUNCTION.nb_errors*/
  2225.  
  2226.  
  2227. void r289make_routine(T289* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  2228. /*[IRF3.3make_e_feature*/((((T289*)(C)))->_names)=(a1);
  2229. /*]*/
  2230. C->_header_comment=a4;
  2231. C->_arguments=a2;
  2232. C->_obsolete_mark=a3;
  2233. C->_require_assertion=a5;
  2234. }
  2235.  
  2236.  
  2237. T0* r289to_run_feature(T289* C,T0* a1,T0* a2){
  2238. T0* R=NULL;
  2239. r289check_obsolete(C);
  2240. {T335*n=malloc(sizeof(*n));
  2241. *n=M335;
  2242. r335make(n,a1,a2,(T0*)C);
  2243. R=(T0*)n;
  2244. }
  2245. return R;
  2246. }
  2247.  
  2248.  
  2249. void r289merge_header_comments(T289* C,T0* a1){
  2250. /*[IF*/
  2251. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  2252. /*[IF*/
  2253. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  2254. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  2255. }
  2256.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  2257. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  2258. }
  2259. /*FI]*/
  2260. }
  2261. /*FI]*/
  2262. }
  2263. /*No:FUNCTION.arguments*/
  2264. /*No:FUNCTION.require_assertion*/
  2265.  
  2266.  
  2267. void r289make_effective_routine(T289* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  2268. r289make_routine(C,a1,a2,a3,a4,a5);
  2269. C->_local_vars=a6;
  2270. C->_routine_body=a7;
  2271. C->_use_current_state=11;
  2272. }
  2273.  
  2274.  
  2275. void r289warning(T0* a1,T0* a2){
  2276. r67add_position(a1);
  2277. r67warning((T67*)(oBC11eh),a2);
  2278. }
  2279.  
  2280.  
  2281. T0* r289try_to_undefine_aux(T289* C,T0* a1,T0* a2){
  2282. T0* R=NULL;
  2283. {T273*n=malloc(sizeof(*n));
  2284. *n=M273;
  2285. r273from_effective(n,a1,(C)->_arguments/*24*/,(C)->_result_type/*56*/,(C)->_require_assertion/*32*/,(C)->_ensure_assertion/*36*/,a2);
  2286. R=(T0*)n;
  2287. }
  2288. return R;
  2289. }
  2290. /*No:FUNCTION.set_ensure_assertion*/
  2291. /*No:FUNCTION.fz_bad_assertion*/
  2292. /*No:FUNCTION.fz_dot*/
  2293.  
  2294.  
  2295. void r289error(T0* a1,T0* a2){
  2296. r67add_position(a1);
  2297. r67error((T67*)(oBC11eh),a2);
  2298. }
  2299.  
  2300.  
  2301. void r289make(T289* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  2302. r289make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  2303. C->_result_type=a3;
  2304. }
  2305. /*No:FUNCTION.routine_body*/
  2306. /*No:FUNCTION.end_comment*/
  2307.  
  2308.  
  2309. void r289collect_for(T289* C,T2 a1){
  2310. T0* _er=NULL;
  2311. /*[IF*/
  2312. if((a1)==(1)){
  2313. _er=(C)->_require_assertion/*32*/;
  2314. /*[IF*/
  2315. if((_er)!=((void*)(NULL))){
  2316. /*[IF*/
  2317. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  2318. r315add_last((T315*)(oBC87require_collector),_er);
  2319. }
  2320. /*FI]*/
  2321. }
  2322. /*FI]*/
  2323. }
  2324. else{
  2325. /*[IF*/
  2326. if(((C)->_ensure_assertion/*36*/)!=((void*)(NULL))){
  2327. /*[IRF3.3set_item*/((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(((T203*)((C)->_ensure_assertion/*36*/))->_header_comment/*4*/);
  2328. /*]*/
  2329. r203add_into((T203*)((C)->_ensure_assertion/*36*/),oBC87assertion_collector);
  2330. }
  2331. /*FI]*/
  2332. }
  2333. /*FI]*/
  2334. }
  2335. /*No:FUNCTION.local_vars*/
  2336.  
  2337.  
  2338. void r289set_header_comment(T289* C,T0* a1){
  2339. /*[IF*/
  2340. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)>(1))){
  2341. C->_end_comment=a1;
  2342. }
  2343. /*FI]*/
  2344. }
  2345. /*No:FUNCTION.clients*/
  2346. /*No:FUNCTION.obsolete_mark*/
  2347.  
  2348.